package com.ktjy.ruoyidata.mapper;

import java.util.List;
import com.ktjy.ruoyidata.domain.ProRoute;
import com.ktjy.ruoyidata.domain.ProRouteProcess;
import com.ktjy.ruoyidata.domain.ProRouteProduct;

/**
 * 工艺路线Mapper接口
 * 
 * @author t382
 * @date 2025-05-09
 */
public interface ProRouteMapper 
{
    /**
     * 查询工艺路线
     * 
     * @param routeId 工艺路线主键
     * @return 工艺路线
     */
    public ProRoute selectProRouteByRouteId(Long routeId);

    /**
     * 查询工艺路线列表
     * 
     * @param proRoute 工艺路线
     * @return 工艺路线集合
     */
    public List<ProRoute> selectProRouteList(ProRoute proRoute);

    /**
     * 新增工艺路线
     * 
     * @param proRoute 工艺路线
     * @return 结果
     */
    public int insertProRoute(ProRoute proRoute);

    /**
     * 修改工艺路线
     * 
     * @param proRoute 工艺路线
     * @return 结果
     */
    public int updateProRoute(ProRoute proRoute);

    /**
     * 删除工艺路线
     * 
     * @param routeId 工艺路线主键
     * @return 结果
     */
    public int deleteProRouteByRouteId(Long routeId);

    /**
     * 批量删除工艺路线
     * 
     * @param routeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProRouteByRouteIds(Long[] routeIds);

    /**
     * 批量删除工艺组成
     * 
     * @param routeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProRouteProcessByRouteIds(Long[] routeIds);
    
    /**
     * 批量新增工艺组成
     * 
     * @param proRouteProcessList 工艺组成列表
     * @return 结果
     */
    public int batchProRouteProcess(List<ProRouteProcess> proRouteProcessList);
    

    /**
     * 通过工艺路线主键删除工艺组成信息
     * 
     * @param routeId 工艺路线ID
     * @return 结果
     */
    public int deleteProRouteProcessByRouteId(Long routeId);

    // 批量插入产品关联
    int batchProRouteProduct(List<ProRouteProduct> proRouteProductList);

    // 批量删除产品关联
    int deleteProRouteProductByRouteIds(Long[] routeIds);

    // 按 routeId 删除产品关联
    int deleteProRouteProductByRouteId(Long routeId);
}
